########################################
# make搜索路径的变量定义
VPATH = .:TinyXml/
########################################
########################################
# 一些变量的定义

RM = rm -f

CC = gcc
CXX = g++

CFLAGS = -c -g -Wall
CXXFLAGS = -c -g -Wall

OBJS = type.o func.o xml_parser.o TinyXml/tinystr.o TinyXml/tinyxml.o TinyXml/tinyxmlerror.o TinyXml/tinyxmlparser.o TinyXml/xmltest.o
SOURCESCXX = $(OBJS: %.o: %.cpp)
SOURCESCC = $(OBJS: %.o: %.c)
DEPS = $(OBJS: %.o: %.d)

#TARGET = test
LIB_ARANYA = libaranya.a
########################################
########################################
## 声明伪目标
.PHONY: all clean
########################################
########################################
# 产生多个可执行文件的方法
#all: $(TARGET)
########################################
########################################
# 包含.d文件
include $(DEPS)
########################################
########################################
# 生成.d文件
$(DEPS): %.d: %.cpp
	$(CXX) -M $(CXXFLAGS) $< > $@.$$$$; sed's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; rm -f $@.$$$$
########################################
########################################
# 生成可执行文件
#$(TARGET) : $(OBJS)
#	$(CXX) -o $@ $<
########################################
########################################
# 生成.a文件
$(LIB_ARANYA): $(OBJS)
	rm -rf $@
	ar cru $@ $(OBJS)
	ranlib $@
########################################
########################################
# 生成.o文件
$(OBJS): %.o: %.cpp
	$(CXX) $(CXXFLAGS) $< -o $@
########################################
########################################
# clean
clean:
	$(RM) $(OBJS) *.d $(TARGET)
########################################
########################################
# distclean
distclean:
	$(RM) $(OBJS) *.d $(TARGET) $(LIB_ARANYA) core.*
########################################
